package br.gov.mi.corporativo.dominio.boundary.comum.pessoadocumento;

import java.util.Date;
import java.util.List;

import javax.inject.Inject;
import javax.jws.WebService;

import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;

import br.gov.mi.corporativo.dominio.entidade.comum.PessoaDocumento;
import br.gov.mi.corporativo.dominio.repositorio.comum.PessoaDocumentoRepositorio;
import br.gov.mi.infraestrutura.crud.CrudServicoImpl;

@Component
@Transactional(readOnly=true)
@WebService(endpointInterface = "br.gov.mi.corporativo.dominio.boundary.comum.pessoadocumento.PessoaDocumentoEndPoint")
public class PessoaDocumentoServico extends CrudServicoImpl<PessoaDocumento, Long, PessoaDocumentoRepositorio>  implements PessoaDocumentoEndPoint{

	@Inject
    public void setRepository(PessoaDocumentoRepositorio repositorio) {
        super.setRepositorio(repositorio);
    }
	
	@Override
	public PessoaDocumento recuperarPorIdPessoaDocumento(Long idPessoaDocumento) {
		return repositorio.findByIdPessoaDocumento(idPessoaDocumento);
	}

	@Override
	public List<PessoaDocumento> recuperarPorMunicipio(Long municipio) {
		return repositorio.findByMunicipio(municipio);
	}

	@Override
	public List<PessoaDocumento> recuperarPorTipoDocumento(Long tipoDocumento) {
		return repositorio.findByTipoDocumento(tipoDocumento);
	}

	@Override
	public List<PessoaDocumento> recuperarPorUf(Long uf) {
		return repositorio.findByUf(uf);
	}

	@Override
	public List<PessoaDocumento> recuperarPorPessoa(Long pessoa) {
		return repositorio.findByPessoa(pessoa);
	}

	@Override
	public List<PessoaDocumento> recuperarPorNrDocumento(String nrDocumento) {
		return repositorio.findByNrDocumento(nrDocumento);
	}

	@Override
	public List<PessoaDocumento> recuperarPorNrSecao(Long nrSecao) {
		return repositorio.findByNrSecao(nrSecao);
	}

	@Override
	public List<PessoaDocumento> recuperarPorNrZona(Long nrZona) {
		return repositorio.findByNrZona(nrZona);
	}

	@Override
	public List<PessoaDocumento> recuperarPorDtEmissao(Date dtEmissao) {
		return repositorio.findByDtEmissao(dtEmissao);
	}

	@Override
	public List<PessoaDocumento> recuperarPorDtValidade(Date dtValidade) {
		return repositorio.findByDtValidade(dtValidade);
	}

	@Override
	public List<PessoaDocumento> recuperarPorStRegistro(String stRegistro) {
		return repositorio.findByStRegistro(stRegistro);
	}


}